package com.elitel.frame.base.service;

import com.elitel.frame.main.entity.SysReqLog;
import com.elitel.frame.main.entity.vo.JobExecuteConditionVo;
import com.elitel.frame.main.entity.vo.ServerStatVO;
import com.elitel.frame.main.entity.vo.StatAnalServicesVO;
import com.elitel.frame.main.entity.vo.StatAnalTableVO;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

/**
 * 访问控制-调用次数统计(SysReqLog)表服务接口
 *
 * @author makejava
 * @since 2023-12-20 18:08:59
 */
public interface SysReqLogService {


    List<Map<String, Object>> invokeRecordList(int startIdx, int endIdx, String status);

    /**
     * 查询近七天调用次数
     *
     * @param days
     * @return
     */
    Map<String, Object> recentDateList(Integer days);

    /**
     * 服务统计
     *
     * @param params
     * @return
     */
    ServerStatVO serverStat(Map<String, String> params);


    List<SysReqLog> getAppReqAll(String guid, String appCode, String servicename);

    List<SysReqLog> getAppReqCounts(String servicecode, Timestamp stm, Timestamp etm, String appCode, String servicename);

    List<SysReqLog> getAppReqCountsTm(String servicecode, String appCode, Timestamp stm, Timestamp etm);

    StatAnalTableVO statisticalAnalysisTables();

    StatAnalServicesVO statisticalAnalysisServices();

    List<JobExecuteConditionVo> jobExecuteCondition();


    public List<List<String>> selectTopByDays(int days, String type);
}
